World wide web formatting for program output through print function

ABSTRACT

A method of creating a Web page comprising the steps of: (a) using an application to create a file not formatted for Web viewing referred to as a source file; and (b) transmitting said source file to a print driver program, said print driver program formatting said source file in a Web format by adding and/or replacing portions of said source file with Web format commands/codes. The method wherein said Web formatted source file is stored in a location accessible by World Wide Web browsers.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to the creation of files in aformat capable of being utilized by a Web browser and, moreparticularly, to a method and apparatus for creating Web browserreadable files by printing through the Microsoft print driver mechanism.

2. Description of the Related Art

The Internet is a network of computers and computer networks locatedboth domestically and throughout the world. Generally, the World WideWeb (“the Web”) is a collection of files available across the Internetthat conform to standards designed to facilitate display, location andretrieval of information (“content”) available on the Internet,typically though not necessarily, through a graphical user interface(GUI). Computer programs that read and display information stored infiles in recognized formats are referred to as “Web browsers.” Webbrowsers are manufactured by a number of companies including Netscapeand Microsoft. Although the term “server” has more than one meaning inthe World Wide Web context, a “server” is a computer connected to theInternet on which Web formatted content may be stored.

There are a large number of Web standards for information storage andretrieval. Some of these standards include Hypertext Markup Language(“HTML”), Dynamic HTML (DHTML), Virtual Reality Modeling Language(VRML), Graphic Interface Format (GIF), and Joint Photographers ExpertGroup (JPEG) among others. Of these, HTML is currently the most widelyadopted format. Thus, by using a Web browser a user is able to retrieveand display information stored in HTML format. Such information may bestored on virtually any computer or computer network connected to theInternet, and the information itself may be varied in form, i.e., text,a picture, sound, video, etc. Files/documents stored in a Web format areoften referred to as “Web pages” because each file/document typicallyappears as a separate screen/page when viewed by a browser.

There are several different versions of HTML. However, each version ofHTML utilizes hypertext concepts to facilitate information location,retrieval, and display. Hypertext is the concept of displayinginformation that is linked to other information about which the user maybe interested. Thus, a user may select an item of information (e.g., theword “giraffe”), and additional information about which the user may beinterested will be displayed (e.g., links to zoos in the area,information about giraffe anatomy, etc.). Files/documents stored in HTMLformat are not compiled. Rather, they are interpreted by Web browsers asthey are read.

HTML facilitates display and retrieval of information by Web browsersthrough he use of a number of standard codes/instructions that indicatehow information is to be isplayed, where it may be found, and whataction to take in response to user selections or activity. Althoughplain text in an HTML document is often simply displayed, just some ofthe codes/instructions supported by HTML include: <BANNER>, <BASE>,<BGSOUND>, <BODY>, <BODYTEXT>, <DIV>, <FN>, <HEAD>, <HTML>, <ISINDEX>,<LANG>, <LINK>, <META>, <NEXTID>, <RANGE>, <SPOT>, <STYLE>, <H>,<TITLE>, <A>, <ABBREV>, <ADDRESS>, <AU>, <BQ>, <BR>, <CENTER>, <CREDIT>,<DEL>, <HR>, <INS>, <MARQUEE>, <NOBR>, <NOTE>, <PERSON>, <Q>, <TAB>,<WBR>, <AREA>, <IMG>, <MAP>, <FORM>, <INPUT>, <OPTION>, <SELECT>,<TEXTAREA>, <P>, <DD>, <DIR>, <DL>, and <DT>. In addition, there are atleast fifty-seven (57) other codes supported by various versions ofHTML. VRML and other script languages are similarly complex while JPEG,GIF and other graphics file types have intricate structures that aregenerally inaccessible at the user level.

Typically, Web pages are created in one of two ways. First, a programmeror other person may create a Web page by typing the appropriate codesand text into a file. This process can be very time consuming andrequires a detailed knowledge of HTML or other Web formats. In addition,the programmer or other person will need to be familiar with programmingconcepts generally and have a detailed knowledge of computer operationsto successfully author a Web page and place it in a proper location sothat it is available to others using the Internet. Thus, the Web pageauthor will need to have a detailed knowledge of a series ofapplications and their commands (e.g., file transfer protocol (FTP),etc.) to successfully create and post a Web page.

A second method of creating a Web page utilizes Web authoring tools(e.g., Visual Cafe, Hot Dog, Front Page). These tools are separatecomputer programs designed to automate portions of Web page design. Forexample, the complex series of commands employed by HTML or another Webformat may be replaced by a more structured authoring method and/orgraph based authoring methods. However, these programs still require ahigh degree of skill, and use of the Web authoring tool may require timeconsuming training or detailed study.

Over the last several years, the Internet and the World Wide Webspecifically have become increasingly popular and growing numbers ofless computer knowledgeable/skilled people are using the Internet andWeb. The complexity and time intensive nature of Web page authoring is abarrier preventing these persons from creating their own Web pages (“ahome page”). Thus, there has developed a need for a is simpler method ofcreating Web pages. In addition, because of the complexity and timeintensive nature of HTML and other Web formats themselves, there is ageneral need for simpler methods of creating Web pages, even bysophisticated computer users/programmers.

SUMMARY OF THE INVENTION

A method of creating a Web page comprising the steps of creating asource file having a format not suited for viewing on the World WideWeb. Transmitting said source file to a print driver program through theMicrosoft print driver mechanism. Formatting said source file in aformat suited for viewing on the World Wide Web.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing applications making GDI calls whichare then passed on to hardware devices.

FIGS. 2 and 3 are block diagrams of print operations from withinapplications.

FIG. 4 shows a standard Windows print dialog box.

FIG. 5 is a flowchart of printing to a custom driver.

DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

GDI, The UPD, and the Registry

1. Graphics Device Interface (GDI)

Various versions of Microsoft Windows (including Windows 1.0—Windows NT)offer a series of functions that provide abstraction from the underlyinghardware when displaying or printing text/graphics. Using thesefunctions, a programmer is generally able to develop software capable ofwriting to a wide variety of hardware devices without includingspecialized statements that may only be operable on a particularhardware device. The group of functions that provide this abstractioncapability in Microsoft Windows for graphics or text devices is referredto as the Graphics Device Interface (GDI). The GDI contains hundreds offunctions and data structures. Thus, a computer program that prints ordisplays graphics or text may include a series of generalized statementsthat call GDI functions, and the GDI functions (in combination withother software) provide support for a wide variety of specific hardwaredevices and their associated characteristics (e.g., screen height/width,paper length/width, supported fonts, supported colors, raster/vector,etc.).

As shown generally in FIG. 1, GDI functions typically receiveinformation from the calling program that is then modified forpresentation on the selected device according to its characteristics.Once modification of the passed information is complete, the modifiedinformation is then passed by the GDI to the hardware device throughother parts of the operating/printing system (e.g., a print spooler).

The particular characteristics of a hardware device are typically storedin separate files that end with the extension “.DRV,” while the GDIfunctions are grouped in a dynamic link library (DLL). Thus, inoperation, a program issues a call to a GDI function, which modifies thepassed information according to the device characteristics stored in theassociated DRV file before passing the modified information to otherparts of the operating system. The GDI and its characteristics are morefully described in widely available publications describing Windowsfeatures including Charles Petzold, Programming Windows95 (4th ed.,1996, ISBN 1-55615-676-6).

2. The Universal Print Driver/DRV Files

Various versions of Microsoft Windows (including Windows95) provide astandard print driver intended to accept calls from and/or return datato the GDI. This standard print driver is referred to as the UniversalPrint Driver (UPD). As shown in FIG. 2, in operation, a programattempting to display or print information issues a series of calls tothe GDI. The GDI then issues a series of calls to perform functions orpass data to the print driver which is typically the UPD. FIG. 3 showsthat prior to receipt by the UPD, a mini-driver may further retrieveinformation or issue calls to device specific information stored in DRVfiles, and then pass the modified information on to the UPD. Uponcompletion of the UPD functions, control and data may be returned to theGDI, which passes the modified information along for final display orprinting. Because the UPD supports standard requests from the GDI, aprint driver developer typically need only supply device specificinformation in a form usable by the UPD in order to support a newhardware device.

In the alternative to working with the UPD, a print driver developer maycreate a completely new print driver as a substitute for the UPD. Byimplementing a custom print driver, GDI calls may be processed in anyfashion specified by the print driver developer. Print drivers aretypically, though not necessarily, stored as DRV files.

In one embodiment of the invention, the UPD is replaced by a customprint driver that accepts calls from the GDI, formats GDI passed data ina Web format, and then stores the formatted data in a World Wide Webaccessible location. A description of the major steps and features ofprint driver development follows. Though development of a print driverinvolves a large number of choices by the programmer and may betime-intensive, such development is routine for one of ordinary skill inthe art. The print driver developer may be further assisted by the largenumber of reference works describing print driver development includingthe Microsoft Windows95 Driver Developers Kit (DDK) (which isincorporated in its entirety herein) and its associated documentationwhich further includes a model print driver for a Hewlett-PackardLaserJet printer.

3. The Windows Registry

Of further interest to a print driver developer is the Windows Registrywhich is forms part of the Microsoft Windows95 and WindowsNT operatingsystems (earlier versions of Windows provided similar functionalitythrough “.INI” files). The Windows Registry contains configurationinformation about, inter alia, the operating system, the user, andhardware and software settings. The Registry acts as a centralrepository of configuration information which may be utilized byapplications to provide a consistent, configurable environment to theuser.

Of particular relevance to the present application is the printerconfiguration information stored in the Registry. When appropriateentries are made to the Registry under the HKEY_CURRENT_CONFIG heading,printers and printer drivers are defined to the operating system.Printer definition entries made to the Registry affect the availableprinters and print drivers selectable from the standard print dialog boxdisplayed by applications complying with Windows interface standards. Astandard print dialog box is depicted in FIG. 4 with an HP LaserJetprinter selected. Thus, a printer or print driver entered in theRegistry may be selected from any application that utilizes the standardprint dialog box. The Windows Registry is further described in a varietyof widely available reference works including Peter Norton & JohnMeuller, Peter Norton's Complete Guide to Windows95 (2nd ed., 1997 ISBN0-672-31040-6), which is incorporated in its entirety herein byreference.

By performing appropriate modification to the Registry, a print driverdeveloper may cause a print driver to appear in the standard printdialog box and to be executed when selected by the user from within anyapplication that utilizes the standard print dialog box and theRegistry. Thus, in one embodiment of the invention, a custom printdriver is added to the Registry (typically, though not necessarily, by aseparate install application). Thereafter, the print driver will appearas a selectable printer from within any application that utilizes thestandard print dialog box. When the print driver is selected by a user,the print driver is executed and print output from the application (inthe form of GDI calls) is directed to the print driver.

A Print Driver in Accordance with the Present Invention

In one embodiment of the present invention, a print driver acceptsoutput from any application (in the form of GDI calls) and inserts HTMLor other Web format coding. An overview of the print driver process isshown in FIG. 5. The print driver is added to the Windows Registry (asdescribed above) and may then be selected by a user from within anyapplication utilizing the standard print dialog box. As part of theinstall procedure and/or when executed from an application, the user maybe prompted for additional information to configure the print driverprocess. For example, the user may be prompted to select the desired Webformat (e.g., HTML, VRML, JPEG, GIF, etc.), to enter a file name inwhich Web formatted output is saved, to enter a location at which theWeb formatted output is saved, and/or to select Web page setup features(e.g., portrait, landscape).

When executed, the print driver interprets and/or replaces GDI callsfrom the user application with appropriate Web format commands/codingand saves the modified output as a new Web formatted file. For example,when HTML coding is selected, a GDI StartDoc call from a userapplication creates a blank HTML file using a file name specified by theuser or otherwise generated. A GDI SelectObject call loads a devicecontext (DC) structure pointing to a handle to a palette, font, brush,etc. that may then be utilized in creating the HTML formatted file. AGDI ExtTextOut call provides text to appear as part of the Web pagebeing created. A GDI BitBlt call provides a bitmap and x and yco-ordinates to position a graphic on the Web page. The graphic isconverted by the custom print driver to any of a variety of graphicsfile formats (e.g., GIF, JPEG, BMP, TIFF, PCX, etc.), and assigned aseparate file name so that it may be referred to by HTML commands/codes.

A GDI EndDoc call causes the print driver to save the Web formattedinformation as a file with a name specified by the user or otherwisegenerated. Once saved, the print driver may then place the file in a Webaccessible location by utilizing file transport protocol (FTP),Hypertext Transport Protocol (HTTP) or other means. A link to the newlycreated Web formatted file may be placed in a location easily accessibleby the user and the Web formatted file may then be viewed by a userusing a Web browser.

In addition to the above GDI functions, other GDI functions may besimilarly modified/replaced by appropriate HTML codes and/or functionsand the above GDI functions may be handled in a different fashiondepending on the desired functionality and the target Web format.

As part of the print driver installation and/or during the print processitself, the user may be prompted to provide information regarding theuser's Internet service provider (ISP) and/or select an ISP from a listof ISPs. The print driver may maintain a dynamic list of ISPs bydownloading such a list from a database of ISPs and their propertiesstored anywhere on the Internet or in some other accessible location.Further, the ISP list may be maintained using Common Gateway Interface(CGI) forms accessible by the ISPs themselves, an administrator, oradministration application.

Using a print driver as described herein, from within any applicationwhich issues GDI calls, a user may select printing to the Web printdriver and thus create a Web formatted file without mastering additionalsoftware, HTML, or other Web formats.

It will be appreciated by those of ordinary skill in the art relevanthereto having to the benefit of this disclosure that the illustrativeembodiments described above are capable of numerous variations withoutdeparting from the scope and spirit of the invention. The methods may beperformed by a computer program or computer programs executed by any ofa wide variety of computers and may exist in source code, object code,script, machine language, loadable or embedded forms. In addition, whilethe is sequence of acts are presented in a specific order, the order ofthe acts may be modified unless otherwise indicated.

Accordingly, the exclusive rights sought herein are as described in theclaims below.

What is claimed is:
 1. A method comprising: enabling a user to selectWorld Wide Web formatting for an output of a program through a printfunction, wherein the output of the program has a format not suited forviewing on the World Wide Web; and formatting the output of the programfor viewing on the World Wide Web in response to the selection for WorldWide Web formatting.
 2. The method of claim 1, wherein the enablingcomprises entering a World Wide Web format driver in an operating systemregistry.
 3. The method of claim 1, wherein the enabling comprisesenabling a display of a print dialog box prompting the user to select aWorld Wide Web format driver.
 4. The method of claim 1, wherein theformatting comprises formatting the output of the program in a hypertextmarkup language.
 5. The method of claim 1, wherein the formattingcomprises formatting the output of the program in accordance withgraphics device interface calls from the program.
 6. The method of claim1, wherein the formatting comprises formatting a source file createdwith the program with a World Wide Web format driver.
 7. The method ofclaim 1, comprising transmitting the World Wide Web formatted output toa location accessible by a World Wide Web browser.
 8. The method ofclaim 7, wherein the transmitting comprises transmitting the World WideWeb formatted output to the location using a file transfer protocol or ahypertext transport protocol.
 9. A method comprising: receiving sourcedata through a graphics device interface, wherein the source data has aformat not suited for viewing on the World Wide Web; formatting thereceived source data for viewing on the World Wide Web using a formatdriver in an operating system registry; and transmitting the World WideWeb formatted source data to a location accessible by a World Wide Webbrowser.
 10. The method of claim 9, wherein the formatting comprisesformatting the received source data in a hypertext markup language. 11.The method of claim 9, wherein the transmitting comprises transmittingthe World Wide Web formatted source data to the location using a filetransfer protocol or a hypertext transport protocol.
 12. A programstorage device readable by a computing device, the program storagedevice encoding statements executable by a computer, the statementsdefining a method comprising: enabling a user to select World Wide Webformatting for an output of a program through a print function, whereinthe output of the program has a format not suited for viewing on theWorld Wide Web; and formatting the output of the program for viewing onthe World Wide Web in response to the selection for World Wide Webformatting.
 13. The program storage device of claim 12, wherein theenabling comprises entering a World Wide Web format driver in anoperating system registry.
 14. The program storage device of claim 12,wherein the enabling comprises enabling a display of a print dialog boxprompting the user to select a World Wide Web format driver.
 15. Theprogram storage device of claim 12, wherein the formatting comprisesformatting the output of the program in a hypertext markup language. 16.The program storage device of claim 12, wherein the formatting comprisesformatting the output of the program in accordance with graphics deviceinterface calls from the program.
 17. The program storage device ofclaim 12, wherein the formatting comprises formatting a source filecreated with the program with a World Wide Web format driver.
 18. Theprogram storage device of claim 12, wherein the method comprisestransmitting the World Wide Web formatted output to a locationaccessible by a World Wide Web browser.
 19. The program storage deviceof claim 18, wherein the transmitting comprises transmitting the WorldWide Web formatted output to the location using a file transfer protocolor a hypertext transport protocol.
 20. A program storage device readableby a computing device, the program storage device encoding statementsexecutable by a computer, the statements defining a method comprising:receiving source data through a graphics device interface, wherein thesource data has a format not suited for viewing on the World Wide Web;formatting the received source data for viewing on the World Wide Webusing a format driver in an operating system registry; and transmittingthe World Wide Web formatted source data to a location accessible by aWorld Wide Web browser.
 21. The program storage device of claim 20,wherein the formatting comprises formatting the received source data ina hypertext markup language.
 22. The program storage device of claim 20,wherein the transmitting comprises transmitting the World Wide Webformatted source data to the location using a file transfer protocol ora hypertext transport protocol.
 23. A method comprising: enabling a userto select World Wide Web formatting for an output of a program through aprint function, wherein the output of the program has a format notsuited for viewing on the World Wide Web; receiving the output of theprogram through a graphics device interface; and formatting the outputof the program for viewing on the World Wide Web, wherein the formattingcomprises formatting the output of the program with a World Wide Webformat driver in accordance with graphics device calls from the programto the graphics device interface.
 24. The method of claim 23, whereinthe enabling comprises entering the World Wide Web format driver in anoperating system registry.
 25. The method of claim 23, wherein theenabling comprises enabling a display of a print dialog box promptingthe user to select the World Wide Web format driver.
 26. The method ofclaim 23, wherein the formatting comprises formatting the output of theprogram in a hypertext markup language.
 27. The method of claim 23,comprising transmitting the World Wide Web formatted output to alocation accessible by a World Wide Web browser.
 28. The method of claim27, wherein the transmitting comprises transmitting the World Wide Webformatted output to the location using a file transfer protocol or ahypertext transport protocol.
 29. A program storage device readable by acomputing device, the program storage device encoding statementsexecutable by a computer, the statements defining a method comprising:enabling a user to select World Wide Web formatting for an output of aprogram through a print function, wherein the output of the program hasa format not suited for viewing on the World Wide Web; receiving theoutput of the program through a graphics device interface; andformatting the output of the program for viewing on the World Wide Web,wherein the formatting comprises formatting the output of the programwith a World Wide Web format driver in accordance with graphics devicecalls from the program to the graphics device interface.
 30. The programstorage device of claim 29, wherein the enabling comprises entering theWorld Wide Web format driver in an operating system registry.
 31. Theprogram storage device of claim 29, wherein the enabling comprisesenabling a display of a print dialog box prompting the user to selectthe World Wide Web format driver.
 32. The program storage device ofclaim 29, wherein the formatting comprises formatting the output of theprogram in a hypertext markup language.
 33. The program storage deviceof claim 29, wherein the method comprises transmitting the World WideWeb formatted output to a location accessible by a World Wide Webbrowser.
 34. The program storage device of claim 33, wherein thetransmitting comprises transmitting the World Wide Web formatted outputto the location using a file transfer protocol or a hypertext transportprotocol.